struct Node
{
    int value;
};
typedef struct Node LTNode; 
typedef struct {
    LTNode* hash;
} MyHashMap;
MyHashMap* myHashMapCreate() {
    MyHashMap* obj = (MyHashMap*)malloc(sizeof(MyHashMap));
    obj->hash =  (LTNode*)malloc(sizeof(LTNode)*((int)(1e6+1)));
    for (int i = 0; i < (int)(1e6+1); i++)
    {
        obj->hash[i].value = -1; 
    }
    return obj;
}

void myHashMapPut(MyHashMap* obj, int key, int value) {
    obj->hash[key].value = value;
}

int myHashMapGet(MyHashMap* obj, int key) {
    return obj->hash[key].value;
}

void myHashMapRemove(MyHashMap* obj, int key) {
  obj->hash[key].value = -1;
}

void myHashMapFree(MyHashMap* obj) {
    free(obj->hash);
    obj->hash = NULL;
    free(obj);
    obj = NULL;
}
